package com.snj.twelve;

import java.util.*;

public class MapUtils {

    /**
     * 根据传入的字符串，查找其在 Map 中对应的 key。
     *
     * @param target 传入的字符串
     * @return 如果找到对应的 key，则返回该 key；否则返回 null
     */
    public static Integer findKeyInMap(String target) {
        // 初始化数据
        List<String> arrayList = new ArrayList<>();
        arrayList.add(String.valueOf(19));
        arrayList.add(String.valueOf(40));
        arrayList.add(String.valueOf(50));
        arrayList.add(String.valueOf(37));

        List<String> fList = new ArrayList<>();
        fList.add(String.valueOf(20));
        fList.add(String.valueOf(5));
        fList.add(String.valueOf(7));

        List<String> statesList = new ArrayList<>();
        statesList.add(String.valueOf(38));

        Map<Integer, List<String>> flagMap = new HashMap<>();
        flagMap.put(4, arrayList);
        flagMap.put(0, fList);
        flagMap.put(1, statesList);

        for (Map.Entry<Integer, List<String>> entry : flagMap.entrySet()) {
            if (entry.getValue().contains(target)) {
                return entry.getKey();
            }
        }
        return null;
    }

    public static void main(String[] args) {

        // 测试传入的字符串
        String inputString = "5";

        // 调用方法
        Integer key = findKeyInMap(inputString);
        if (key != null) {
            System.out.println("字符串 " + inputString + " 在 map 中的 key 是: " + key);
        } else {
            System.out.println("字符串 " + inputString + " 不在 map 中的任何一个列表中。");
        }
    }
}